# 列表的基本练习
# 方法元素位置 arr[1]
# append
# insert
# del
# pop
# remove
# sort
# sorted
# reverse
# len

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)

print('bicycles0:', bicycles[0].title())

print('bicycles last:', bicycles[-1])

# 修改列表元素
bicycles[0] = 'ductail'
print(bicycles)

# 使用 append 在列表末尾添加元素
bicycles.append('suzuki')
print(bicycles)

# 使用 insert 在列表中插入元素
bicycles.insert(1, 'haha')
print(bicycles)

# 使用 del 从列表中删除元素
del bicycles[1]
print(bicycles)

# 使用 pop 删除列表末尾元素，并返回删除元素
pop_bicycles = bicycles.pop()
print(pop_bicycles)

# 使用 pop 弹出列表任何位置的元素
first_bircycles = bicycles.pop(0)
print(first_bircycles)

print(bicycles)

# remove 方法删除列表中指定的值（只删除第一个，删除多个需要循环处理）
too_expensive = 'redline'
bicycles.append(too_expensive)
bicycles.remove(too_expensive)
print(bicycles)

# sort 排序, 会修改原始列表
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print('cars:', cars)
cars.sort(reverse=True)
print('reverse cars:', cars)

# sorted 临时排序，不影响原始列表
ary = ['bmw', 'audi', 'toyota', 'subaru']
print('ary sorted:', sorted(ary))
print('ary:', ary)

# reverse 反转列表
ary.reverse()
print('ary-reverse:', ary)

# len 确定列表长度
print('ary-length:', len(ary))


# 练习
places = ['北京', '西安', '南京', '杭州', '开封', '洛阳']

print('places', places)

print('sorted places', sorted(places))

print('sorted places', sorted(places, reverse=True))

print('places', places)

places.reverse()

print('reverse places', places)

places.sort()

print('sort places', places)

places.sort(reverse=True)

print('sort reverse places', places)

print('len places', len(places))


# 访问不存在元素，引发错误
motorcyles = []
print(motorcyles[-1])

